Selecting and configuring metrics for monitoring

ABSTRACT

Technologies are disclosed herein for selecting and configuring metrics to monitor. The metrics available for monitoring are associated with computing resources provided by a service provider network. Instead of requiring a customer to manually determine the metrics that may be monitored, the service provider network may dynamically determine the metrics available for monitoring based on the infrastructure specified by the customer to execute in the service provider network. In this way, customers may not only select metrics related to the health of the computing devices (physical or virtual), the customer may also select metrics related to the software applications executing on the computing devices.

BACKGROUND

Some network-based computing service providers allow customers topurchase and utilize computing resources, such as virtual machineinstances, on a permanent or as-needed basis. In addition to virtualmachine instances, such computing service providers typically allowcustomers to purchase and utilize other types of computing resources.For example, customers might be permitted to purchase access to and useof file and block data storage resources, database resources, networkingresources, and other types of computing resources. Utilizing thesecomputing resources as building blocks, customers of such anetwork-based computing service can define computing infrastructures andcreate custom solutions that provide various types of functionality,such as application hosting, backup and storage, content delivery, WorldWide Web (“Web”) hosting, enterprise information technology (“IT”)solutions, database services, and others.

It can sometimes be difficult for customers, or potential customers, ofcomputing service providers such as those described above to monitor theoperation of computing resources. For example, a significant amount ofmanual technical effort may be required to define and set up themonitoring for the different computing resources. The technical effortrequired to define the monitoring may be costly and time consuming andmight, therefore, present a significant barrier to the utilization ofmonitoring that may be available to customers.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting an illustrative operatingenvironment for selecting and configuring metrics to monitor within aservice provider network;

FIG. 2 is a network architecture diagram showing aspects of oneillustrative mechanism described herein for monitoring metrics forcomputing resources within a service provider network;

FIG. 3A is a screen diagram showing an illustrative GUI that displaysmetrics that are available for monitoring;

FIG. 3B is a screen diagram showing an illustrative GUI that displaysmetrics that are available for monitoring along with a snapshot ofcollected metric data;

FIG. 3C is a screen diagram showing an illustrative GUI that displaysmetric data for selected metrics;

FIG. 3D is a screen diagram showing an illustrative GUI that displayspurchased metrics along with a snapshot of collected metric data;

FIG. 4 is a flow diagram showing a routine illustrating aspects of amechanism disclosed herein for selecting and configuring metrics tomonitor within a service provider network;

FIG. 5 is a flow diagram showing a routine illustrating aspects of amechanism disclosed herein for providing example metric data for metricsand purchasing metrics;

FIG. 6 is a system and network diagram that shows one illustrativeoperating environment for the examples disclosed herein that includes aservice provider network;

FIG. 7 is a computing system diagram that illustrates one configurationfor a data center that implements aspects of a service provider network,including some or all of the concepts and technologies disclosed hereinfor determining metrics available for monitoring and configuring themetrics for monitoring; and

FIG. 8 is a computer architecture diagram showing one illustrativecomputer hardware architecture for implementing a computing device thatmight be utilized to implement aspects of the various examples presentedherein.

DETAILED DESCRIPTION

The following detailed description is directed to technologies forselecting and configuring metrics to monitor. For example, metrics thatare available for monitoring may be associated with computing resourcesprovided by a service provider and execute within a service providernetwork. Some example metrics that may be monitored are associated withresources such as, but not limited to virtual computing resources thatare utilized as execution environments (e.g., virtual machines orcontainers), database resources, storage resources, security resources,auto-scaling resources, networking resources, and the like. Instead ofrequiring a customer to manually determine the metrics that areavailable for monitoring, the service provider network may dynamicallydetermine the metrics available for monitoring based on theinfrastructure specified by the customer to execute in the serviceprovider network. In this way, customers may not only more easily selectmetrics related to the health of the execution environments (e.g.,virtual computing devices or physical computing devices) the customermay also select metrics related to the software applications executingin the execution environments.

The metrics that are available for monitoring may be determined fromdata associated with the computing resources or some other data source.For example, all or a portion of the computing resources may have a listof metrics that may be monitored. In some examples, a collection daemonmay include a list of the metrics that may be monitored for thedifferent computing resources that are supported for monitoring by thedaemon. In some configurations, best practices that are associated withan execution environment, software product, and/or software servicemight also be used when determining the available metrics that may bemonitored.

Best practices for an execution environment, a software product orservice might refer to different metrics recommended for use in theexecution environment, software product or service that have been shown,or are believed, to be useful in determining an efficient use of theexecution environment, a software product or service. For example, thebest practices for a load balancing product might indicate that a loadbalancer metric that measures a number of requests might be useful whenthe load balancing software product is being used to service more than ahundred customers. The best practices might be supplied by a softwareprovider and/or some other entity (e.g., a reviewing service, theservice provider, or some other user familiar with the operation of theexecution environment, a software product or service). All or a portionof these metrics may be provided to the customer. For example, themetrics for the computing resources executing in the service providernetwork on behalf of a customer may be provided in a graphical userinterface (GUI) that displays the available metrics.

After the service provider network provides the available metrics, thecustomer may select the metrics to monitor. For example, the customermay select the metrics to monitor from the GUI, or some other interface,that displays the available metrics. In some examples, the customermight obtain more information about the metric before selecting themetric for monitoring. For instance, upon selection of an availablemetric, a GUI may be updated to show actual metric data collected fromcomputing resources executing in the infrastructure defined by thecustomer (e.g., data from the last five minutes) for the selectedmetric. In other examples, a snapshot of actual metric data may bepresented with the display of the available metrics. In this way, thecustomer may view actual metrics data obtained from the definedinfrastructure in order to assist the customer in determining whether toselect the metric for monitoring.

In some configurations, the customer may select to purchase one or moreof the available metrics from the GUI. For example, the customer mightselect a single user interface element to purchase and configure ametric for monitoring. As used herein, a “purchase” may result in nopayments from the customer (e.g., a free trial), a one-time payment froma customer, or may result in payments from a customer that are made onan ongoing basis. In some examples, a purchase of a metric, alarm, someother computing resource, or software product establishes a subscriptionthat allows the customer to use the purchased product (e.g., metric,alarm, and/or software product) at a specified usage fee. The specifiedusage fee may be based on different factors such as a frequency of themonitoring or alarm, a time the software product is executed, a numberor type of resources used by the software, a number of operationsperformed by the software product, and the like. As used herein, theterm “software product” may refer to software and/or software services.For example, a software product may be an application, a machine image,or software as a service (“SaaS”). The software product may be availablefrom an electronic marketplace and may be executed in a service providernetwork.

After a metric is purchased, the service provider network may configurethe selected metric for monitoring. For instance, instead of requiringthe customer to modify a configuration file, or set some other setting,the service provider network may configure the configuration file (orother settings) on behalf of the customer. According to someconfigurations, the service provider network modifies a configurationfile to specify that the selected metrics are to be monitored fromwithin the service provider network and instructs a monitoring agentwithin the service provider network to begin the monitoring of theselected metrics. In some examples, data related to the purchased metricis displayed within a graphical user interface for the customer to view.Additional details regarding the various components and processesdescribed above relating to selecting and configuring metrics to monitorwill be presented below with regard to FIGS. 1-8.

It should be appreciated that the subject matter presented herein may beimplemented as a computer process, a computer-controlled apparatus, acomputing system, or an article of manufacture, such as acomputer-readable storage medium. While the subject matter describedherein is presented in the general context of program modules thatexecute on one or more computing devices, those skilled in the art willrecognize that other implementations may be performed in combinationwith other types of program modules. Generally, program modules includeroutines, programs, components, data structures and other types ofstructures that perform particular tasks or implement particularabstract data types.

Those skilled in the art will also appreciate that aspects of thesubject matter described herein may be practiced on or in conjunctionwith other computer system configurations beyond those described herein,including multiprocessor systems, microprocessor-based or programmableconsumer electronics, minicomputers, mainframe computers, handheldcomputers, personal digital assistants, e-readers, mobile telephonedevices, tablet computing devices, special-purposed hardware devices,network appliances and the like. As mentioned briefly above, theexamples described herein may be practiced in distributed computingenvironments, where tasks may be performed by remote computing devicesthat are linked through a communications network. In a distributedcomputing environment, program modules may be located in both local andremote memory storage devices.

In the following detailed description, references are made to theaccompanying drawings that form a part hereof, and that show, by way ofillustration, specific examples or examples. The drawings herein are notdrawn to scale. Like numerals represent like elements throughout theseveral figures (which may be referred to herein as a “FIG.” or“FIGS.”).

FIG. 1 is a block diagram depicting an illustrative operatingenvironment 100 for selecting and configuring metrics to monitor withina service provider network. In some examples, the metrics may beassociated with measurements of characteristics provided by computingresources that execute within the service provider network 120. Thecomputing resources may be associated with a service provider and/orcomputing resources provided by third party software providers. Forexample, the metrics may be associated with execution environments, suchas containers or virtual machines, and/or other software applications orservices that execute within the service provider network 120. Themetrics may also be associated with third party software products suchas network products, database products, business products, as well asother products.

The metrics may measure different characteristics that are associatedwith the execution of a computing resource. For example, the metricsmight measure CPU performance, disk usage, bandwidth used, memory usage,number of writes performed, number of reads performed, number ofoperations performed, types of operations performed, and the like.Generally, each computing resource may be associated with a list ofmetrics that may be monitored from within the service provider network120. For example, a database application may have metrics related toperforming database operations, whereas a network application may havemetrics related to transferring data across a network. The list ofmetrics that are supported for measuring may be stored in the metricsdata 186 within the data store 128, or at some other location.

As illustrated in FIG. 1, the operating environment 100 includes one ormore computing devices 130, in communication with the service providernetwork 120. In some configurations, a customer of a service providermay utilize the computing device 130 to select one or more softwareproducts 152 for execution within the service provider network 120.According to some examples, the service provider, a third party softwareprovider, or some other software provider, may submit one or moresoftware products 152 (e.g., virtual machine images) to the electronicmarketplace 160. The electronic marketplace 160 may then make thesubmitted software product 152, as well as other software products 152submitted to the electronic marketplace 160, available to customers.

As used herein, the terms “customer” and “customers” refer to existingcustomers of the electronic marketplace 160 and/or the service providernetwork 120 as well as visitors (i.e. potential customers) to theelectronic marketplace 160 and/or the service provider network 120. Insome examples, a third party software provider, or a third party metricprovider, may be considered a customer of the electronic marketplace 160and/or the service provider network 120 since the third party softwareprovider or the third party metric provider may not be an owner oroperator of either the electronic marketplace 160 and/or the serviceprovider network 120. A third party metric provider may provide metricsto the service provider network 120 that may be made available forpurchase (e.g., through the electronic marketplace 160) by one or morecustomers of the service provider network 120.

Illustratively, the marketplace server 164 may generate one or more userinterfaces, through which a customer, utilizing the computing device130, or some other computing device, may browse software products 152,submit queries for matching software products and view information anddetails regarding specific software products. A customer of the serviceprovider network may purchase the software product 152 from theelectronic marketplace 160, configure the software product 152 andlaunch the software product 152 in a hosted computing environment (e.g.,the service provider network 120) in a single interaction or orderplaced with the electronic marketplace 160. According to anotherexample, the hosted computing environment may be a different network,such as a software provider network.

According to an example, the marketplace server 164 establishes anaccount for the customer. The account information may include a varietyof different information, such as one or more payment methods, billingpreferences, address information, communication preferences, privacypreferences, and the like. This information might be obtained by themarketplace server 164 and provided to the billing server 168. Thebilling server 168 may also be configured to process payments fromcustomers and, in some examples, provide payment to the softwareproviders of the software products and/or metrics data. The billingserver 168 may be configured to store data about what portion of apayment received by a customer for use of a software product is providedto the software provider and what portion is provided to the electronicmarketplace 160 and/or the service provider network 120.

As described in more detail below, the service provider network 120 mayinclude a collection of rapidly provisioned and, potentially, releasedcomputing resources hosted in connection with the marketplace or a thirdparty provider. Customers of the service provider network 120 maypurchase and utilize computing resources 130 such as computing resources130A-130C, from a service provider on a permanent or as-needed basis.The computing resources 130 may include a number of computing,networking and storage devices in communication with one another. Insome configurations, the computing resources 130 may correspond tophysical computing devices. In other configurations, the computingresources may correspond to virtual machine instances, implemented byone or more physical computing devices, such as the servers 170A-170C.

Some of the computing resources are configured to operate as physicalcomputing devices, such as virtual machine instances, containers, andother types of execution environments. A service provider might alsooffer other types of resources 130 for purchase and use by customers.For example, a service provider might offer file or block data storageresources, database resources, networking resources, such as loadbalancing resources, domain name service (“DNS”) resources, virtualnetworking resources, security resources 180 and/or other types ofresources 182 on a permanent or as-needed basis. As described in moredetail below, all or a portion of the computing resources 130 may havemetrics that may be monitored by the monitors 135. The computingresources may also be configured to execute one or more softwareproducts and/or other types of software. The service provider may alsooffer for sale metrics for computing resources.

The service provider operating the service provider network 120 mightalso charge a fee for operating the resources 130 that the customer useswithin the service provider network 120. The fee charged for aparticular resource 130 might be based upon the type and/orconfiguration of the resource 130. The fee charged for a particularresource 130 might also be based upon the amount of time the resource130 is utilized. For example, in the case of a data processing resource,like a virtual machine instance, the fee for use of the resource mightbe charged based upon the amount of time the resource is utilized. Inthe case of a data storage resource, the fee might be computed basedupon the amount of data stored and/or the amount of data transferredinto or out of the resource. The fees for other types of resources 130might also be based upon other considerations. In some configurations,the service provider may also charge for the delivery of metrics data126 for the selected metrics 190 that the customer selects to monitor. Aservice provider might also utilize various purchasing models todetermine the amount to charge a customer for use of resources 130provided by the service provider.

The various resources 130 might also be provisioned and de-provisionedas needed in an automated fashion. For example, a customer might submita request to the service provider network 120 to instantiate a newinstance of a computing resource 130, such as an instance of a virtualmachine. In response to receiving such a request, or one or morecomponents within the service provider network 120, might create the newinstance of the virtual machine as requested by the customer. Thecustomer may then be permitted to utilize the new instance of thevirtual machine as desired. Other types of computing resources might beinstantiated in a similar fashion.

When a customer has finished using a computing resource 130, such as avirtual machine instance, the customer may request that the resource 130be de-provisioned. In response thereto, a component in the serviceprovider network 120, may cause the computing resources 130 to bede-provisioned. Other types of computing resources 130 might also beprovisioned and de-provisioned in a similar manner. When a resource isde-provisioned, the metrics manager 124 may stop the monitoring of theselected metrics 190 that were associated with the de-provisionedresource. The service provider network 120 might also providefunctionality for automatically scaling and/or de-scaling resources 130based upon demand for the computing resources 130 or other factors.

In some examples, customers may define an infrastructure that definesthe resources 130 used by an application that executes within theservice provider network 120, and possibly other networks (not shown).For instance, a customer might be interested in creating an applicationthat includes computing resources, such as web servers that auto-scale,a load-balancer, a firewall, and a data storage service.

In some examples, the configuration data 184 may be used by the metricsmanager 124, another component, or some other computing device, togenerate a deployment template (not shown). The deployment templatemight be implemented utilizing JavaScript Object Notation (“JSON”)language, a text file, or some other suitable language. In someconfigurations, the deployment template may be used to provision theidentified resources in the service provider network 120, and possiblyother networks. For example, a component within the service providernetwork 120, such as the metrics manager 124, may utilize the deploymenttemplate specified in the configuration data 184 to provision andinstantiate the defined resources in the service provider network 120.

As illustrated in FIG. 1, the monitoring service 166 includes a metricsmanager 124, and a data store 128. While the metrics manager 124, andthe data store 128 are illustrated within the monitoring service 166,all or a portion of these components may be located in other locations.For example, the data store 128 may be located externally from themonitoring service 166 at some other location in the electronicmarketplace 160 or the service provider network 120. Similarly, themetrics manager 124 may be part of another service or computing device,such as the marketplace server 164, and the like.

As discussed above, the metrics manager 124 included in the monitoringservice 166 may be configured to determine the metrics available tomonitor, monitor (or instruct) the selected metrics 190 to be monitoredand provide the collected metric data 126 to the computing device 130.In some examples, the metrics that are not already selected formonitoring and are available for monitoring by a customer may beselected by the metrics manager 124 when generating the availablemetrics 188.

The metrics that are selected as available metrics might be selected bythe metrics manager 124 using different mechanisms. For example, theavailable metrics 188 might be based on an analysis of the customers'environments, such as what hardware is deployed, what software isdeployed, and what services the environment uses. As additionalexamples, the available metrics 188 that are selected by the metricsmanager 124 might be based on a listing of the metrics available to bemonitored (e.g., stored within the metrics data 186), best practicesdata 182, a popularity of the metrics, reviews of the metrics, or thelike. The popularity of the metrics might be based on customers in theservice provider network that have similar profiles.

As discussed above, best practices may refer to different metrics for anexecution environment, software product or service that have been shown,or are believed, to be useful in determining an efficient use of theexecution environment, a software product or service. The best practices182 might be supplied or determined by the metrics manager 124, asoftware provider and/or some other entity (e.g., a reviewing service,the service provider network 120, or some other user familiar with theoperation of the software product).

In some examples, customer data obtained from the service providernetwork 120 is used to determine the best practices 182. For example,configuration settings set by customers of the service provider network120 for different computing resources 130, and combination of computingresources 130, may be accessed to determine metrics that are commonlyselected and utilized by customers. In some examples, a top number ofmetrics (e.g., top 2%, 5%, or the like) that are utilized by othercustomers may be identified to include in the best practices data 182.

According to some configurations, the customer data used to determinethe metrics for the best practices 182 may be based on customers thathave a similar profile to the customer utilizing the computing device130. For example, the metrics manager 124, or some other user orcomponent, may identify other customers that are in the same type ofbusiness (e.g., banking, software-as-a-service, or the like) anddetermine the metrics that are commonly selected by the identifiedcustomers. In other examples, the customers that are determined to besimilar may be based on other factors, such as but not limited to thenumber of employees of a business associated with the customers, anaverage amount of money spent for the use of the computing resources130, an average time spent using the computing resources 130, and thelike. According to some configurations, the service provider network 120removes any personally identifiable information (“PII”) relating to thecustomers of the service provider network before providing data to acustomer. In other words, the data is anonymized before being providedto a third party customer.

Before providing the available metrics 188 to the computing device 130for selection, the metrics manager 124 may prioritize the availablemetrics 188 based on various criteria. For example, the metrics 188 maybe presented based on cost, reviews, likeliness of use, and the like.The metrics manager 124 might also utilize usage information whenselecting the metrics to provide to the customer. For example, theavailable metrics 188 might be based at least, in part, on how manyother customers are utilizing a metric with a particular resource. Insome configurations, the manager 124 may select a top number of metricsas available metrics 188 (e.g., the top 2, 5 or 10 for a particularcomputing resource). For example, if there are one metrics that aredetermined to be available for monitoring based on the infrastructure ofthe customer, the metrics manager 124 may determine the metrics that areranked the highest according to specified parameters (e.g., cost, use)of the customer. For example, it may be determined that certain metrics(or data from those metrics) are more active (e.g., outputting the mostdata) or are viewed more frequently by the customer, in which casesthose metrics may be ranked higher than other metrics. In someinstances, the metrics manager 124 may rank the metrics that arecandidates for monitoring and select a specified number of the metricsas the available metrics 188 that are provided to the computing device130.

The available metrics 188 might be provided by the metrics manager 124to a customer using different mechanisms. For example, the availablemetrics 188 might be provided in a GUI, stored in a document, deliveredin a message (e.g., email, SMS, user interface), or provided in anothermanner. For example, a message could be sent to the customer with therecommendations. A user interface, such as the GUI 300 illustrated inFIG. 3A or the GUI 325 illustrated in FIG. 3B, might be used by thecustomer to view and interact with the available metrics 188.

After the available metrics 188 are provided to the computing device130, the customer may select the metrics to monitor. For example, thecustomer may select the metrics to monitor from a graphical userinterface (GUI) that displays the available metrics. In some examples,the customer might obtain more information about the metric beforeselecting the metric for monitoring. For instance, upon selection of anavailable metric, a GUI, such as the GUI 335 illustrated in FIG. 3C, maybe updated to show actual metric data collected from computing resourcesexecuting in the infrastructure defined by the customer (e.g., data fromthe last five minutes) for the selected metric. In some examples, actualmetric data is provided for display before selection, such as in the GUI325 illustrated in FIG. 3B. In this way, the customer may view actualmetrics data obtained from the defined infrastructure in order to assistthe customer in determining whether to select the metric for monitoring.

In some configurations, the customer may select to purchase one or moreof the available metrics from the GUI. After a metric is purchased by acustomer using the computing device 130, the metrics manager 124 mayconfigure the selected metrics 190 for monitoring. For instance, insteadof requiring the customer to modify a configuration file, or set someother setting, the metrics manager 124 may configure the configurationfile (or other settings) on behalf of the customer. In someconfigurations, the configuration data for the monitoring may be storedwithin the data configuration data 184 in the data store 128 and/or atsome other location. For instance, the metrics manager 124 may providethe data indicating what metrics to monitor directly to one or morecollection components 135. According to some examples, the metricsmanager 124 may instruct one or more of the collectors 135 to load aplugin that supports collecting metric data 126 of a selected metric.For example, if the collector 135A on the server 170A does not alreadyhave a plugin loaded to support the collection of metric data 126 for aselected metric 190 associated with the resources 130A, the metricsmanager 124 may instruct the collector 135A to load the plug in thatsupports the collection. In other examples, the collector 135A may loadthe plugin in response to the change in configuration settings thatspecify the metrics to monitor.

The collection components 135 are operative to collect metrics data 126associated with the resources 130 executing on computing devices. In thecurrent example, collector 135A is configured to collect metrics data126 associated with the resources 130A on the server 170A. Collectors135B-135C are configured to monitor metrics associated with theresources 130B-130C on the server 170B. For example, collector 135B maybe configured to collect metrics data 126 for resource 130B andcollector 135C may be configured to collect metrics data 126 forresource 130C. Collector 135D is configured to collect metrics data 126for the resource 130 d on the server 170C.

In some configurations, the selected metrics 190 are monitored by asystems statistics collection daemon, such as the “Collectd” systemsstatistics collection daemon. In Collectd there are over 90 plugins thatsupport different software products and the monitoring of many differenttypes of metrics. Other monitoring technologies may be utilized. Forexample, some metrics may be monitored by an operating system associatedwith the resources 130, other metrics may be monitored by a softwareproduct 152, and the like. In some cases, the collectors 135 may beimplemented in software and/or hardware. According to someconfigurations, the collectors are placed on a same server 170 as theresources being monitored are located.

As briefly discussed above, some of the metrics that are available formonitoring may be provided by a third party metric provider. Forexample, a software provider of a software product operative to monitormetrics within the service provider network 120 may make available forpurchase the metrics by customers of the service provider network. Forexample, the metrics associated with a third party software product maybe made available by the third party metric provider for use andpurchase by customers of the service provider network 120. In someconfigurations, the third party metric provider may utilize thecomputing device 130 to provide the metrics to the metrics manager 124.The metrics manager 124 may make the metrics provided the third partymetric provider available for purchase in a marketplace, such as theelectronic marketplace 160. In this way, customers of the serviceprovider network 120 may purchase metrics provided by third party metricproviders and/or metrics provided by the service provider network 120,or some other user or customer.

The metric data 126 may be obtained at various times. For example, themetric data 126 may be obtained periodically, at specified times, inresponse to an event, or in response to some other condition. In someexamples, the customer may specify how often the monitoring of a metricis to be performed (e.g., every minute, two minutes). Additional detailsregarding selecting and configuring metrics are provided below.

FIG. 2 is a network architecture diagram showing aspects of oneillustrative mechanism described herein for monitoring metrics forcomputing resources within a service provider network 120. Asillustrated, the service provider network 120 is a network in whichcustomers can purchase and utilize computing resources, such as thecomputing resources 130D-1300, the virtual machine computing resources240 including virtual machine instances (“VMs”). These differentresources may be referred to as “resources” or individually as a“resource”.

Each type or configuration of a resource may be available from theservice provider that operates the service provider network 120 indifferent sizes and/or configurations. For example, a service providermight offer virtual machine computing resources 240 (e.g., VM instancesor other types of data processing resources that are available forpurchase and use that may have different configurations of processorcapabilities, main memory, disk storage and operating systems). Aservice provider might also offer other types of resources, such ascomputing resources 130D-1300 for purchase and use by customers. Forexample, a service provider might offer database resources, file orblock data storage resources and/or networking resources, such as loadbalancing resources, domain name service (“DNS”) resources, virtualnetworking resources and/or other types of resources on a permanent oras-needed basis. As discussed above, the resources might also includeresources (e.g., software products 152) that are provided by the serviceprovider and/or third party software providers. For example, a thirdparty software provider might offer database resources, file or blockdata storage resources and/or networking resources, such as loadbalancing resources, networking resources and/or other types ofresources on a permanent or as-needed basis.

The resources 130 may be provided in one particular implementation byone or more data centers operated by the service provider. Data centersare facilities utilized to house and operate computer systems andassociated components. Data centers typically include redundant andbackup power, communications, cooling and security systems. The datacenters may be located in different geographical locations, and may beconnected to various other facilities, such as co-location facilities,and various networks (e.g., the Internet), such as the network 230.

In the environment shown in FIG. 2, a service provider might operate oneor more data centers configured to provide the resources in the serviceprovider network 120 to its customers. While a single service providernetwork 120 is shown in FIG. 2, the service provider network 120 mightinclude many different networks that are in geographically disparatelocations. Exemplary details regarding the implementation of a serviceprovider network 120 for providing the functionality disclosed herein isdescribed below with regard to FIGS. 6 and 7.

According to an example, resources in the service provider network 120are provisioned and de-provisioned as needed in an automated fashion.For example, a customer might submit a request to the service providernetwork 120 to instantiate a computing resource, such as an instance ofa virtual machine using virtual machine computing resources 240. Inresponse to receiving such a request, a provisioning component (notshown in FIG. 2), or one or more other components within the serviceprovider network 120, might create the new virtual machine instance asrequested by the customer. The customer may then be permitted to utilizethe new virtual machine instance as desired. The collectors 135 areconfigured to collect metrics data 126 for at least a portion of theresources executing in the virtual machines 240. Other types ofcomputing resources 130 might be instantiated and utilized in a similarfashion.

When a customer has finished using a computing resource, such as avirtual machine instance, the customer may request that the resource bede-provisioned. In response thereto, a provisioning component or anothercomponent in the service provider network 120 may cause the resource tobe de-provisioned. Other types of computing resources might also beprovisioned and de-provisioned in a similar manner.

As illustrated in FIG. 2, the computing resources 130 in the serviceprovider network 120 may be located near one or more collectors 135,such as collectors 135D-135Q. The collectors 135 may be deployed at oneor more locations in the service provider network 120. For example, thecollectors 135 may be deployed as network devices, computing resources130, and/or deployed as software that is located on the network devices,or the computing resources 130. In some examples, more than onecollector, such as collectors 135F, may be utilized. For instance, adifferent collector 135 might be utilized with each different type ofcomputing resources 130 being monitored. As discussed above, a collector135 may be placed into operation by the monitoring service 166 tocollect metrics data 126 for one or more selected metrics 190.

It should be appreciated that the configuration of the service providernetwork 120 shown in FIG. 2 has been simplified for discussion purposes.A service provider network 120 might include many more hardware andsoftware components than illustrated in FIG. 2 and described above.Additionally, the service provider network 120 might include many othercomponents, such as networks, networking components, data stores andother components than those specifically identified herein.

Turning now to FIGS. 3A-3D, different examples of graphical userinterfaces (“GUIs”) are illustrated that display data relating tometrics that may be monitored. The GUIs that are presented are forillustrative purposes only, and are not intended to be limiting.

FIG. 3A is a screen diagram showing an illustrative GUI 300 thatdisplays metrics that are available for monitoring. The GUI 300 may begenerated by the metrics manager 124, shown in FIG. 1, and presented ona computing device, such as the computing device 130 by an application,such as a Web browser.

As illustrated, the GUI 300 includes rows corresponding to differentsoftware products 152, services and execution environments configured toexecute in the service provider network 120. In the current example, theGUI 300 includes a display of a row (e.g., rows 310A-310C) for eachsoftware product 152 that is configured by a customer to execute withinthe service provider network 120. For instance, each software productmay be configured to execute within one or more virtual machineinstances. In some examples, the software products shown in the GUI 300are software products that are determined to be executing within theservice provider network 120. Rows 310D-310F show execution environments(e.g., virtual machines) and/or services utilized by the customer withinthe service provider network 120.

In the current example, the GUI 300 shows a row 310A for the databaseexpress software product 152, a row 310B for the cloud storage softwareproduct 152, a row 310C illustrating the software product N, a row 310Dfor a virtual machine, a row 310E for a load balancer, and a row 310Ffor a service N. As can be seen by referring to each of the rows310A-310F, a customer may view a list of available metrics 188 that maybe monitored for each of the software products, services and otherresources that are associated with the customer.

Viewing the row 310A that is associated with the database expresssoftware product 152, the customer may see that metrics available formonitoring include a commands metric, a handler metric, a threadsmetric, a disk use metric, and a memory use metric. The metrics that areillustrated are for exemplary purposes and are not intended to belimiting. More or fewer metrics may be associated with a product.Viewing the other rows 310B-310F, the customer may view the metrics thatare available with other resources. The customer may select one or moreof the metrics to monitor.

According to some configurations, the customer may purchase one or moreof the available metrics by selecting the purchase selected metrics userinterface element 322. In some examples, the customer may perform asingle selection of the purchase selected metrics UI element 322 topurchase and configure the selected metrics. For example, selecting thepurchase selected metrics UI element 320B when the command metric 320Aand the CPU metric 320B is selected may result in the purchase andconfiguration of the commands metric and the CPU metric 320B.

In some configurations, the customer might be permitted to obtain moreinformation about a metric. For example, the customer might select oneor more of the metrics to obtain more detailed information, asillustrated in FIG. 3C, about a particular metric. In the currentexample, the customer has selected to view more detailed informationabout the command metric 320A associated with the database expresssoftware product and the CPU metric 320B associated with the virtualmachine computing resource.

FIG. 3B is a screen diagram showing an illustrative GUI 325 thatdisplays metrics that are available for monitoring along with a snapshotof collected metric data. The GUI 325 may be generated by the metricsmanager 124, shown in FIG. 1, and presented on a computing device, suchas the computing device 130 by an application, such as a Web browser.

As illustrated, the GUI 325 includes rows corresponding to differentmetrics that are available for monitoring for the “Database Express”software product 152. In the current example, the GUI 325 includes a rowfor the commands metric, a row for the handler metric, a row for thethreads metric, a row for the disk use metric, and a row for the memoryuse metric. All or a portion of the metrics associated with a softwareproduct, or more than one software product may be illustrated in the GUI325.

In the current example, the GUI 325 shows a metrics name column 320A, aselect column 330B, a description column 330C, a snapshot of metric datacolumn 330D, and a purchase and configure column 330E. More or less datamay be shown. Generally, the metrics name column 330A provides the nameassociated with a metric that is available for monitoring. The selectcolumn 330B allows a customer to select the metric. The selection may beused to determine what metrics to purchase and/or to provide furtherinformation about the metric. The description column 330C provides abrief description of the metric.

The snapshot of metric data column 330D provides a snapshot of metricdata collected from resources 130 executing on behalf of the customer.For example, instead of showing exemplary metrics data obtained fromsome other computing resource, the metrics data shows the customerinformation about the resources 130 executing on behalf of the customer.Over time (e.g., every 5 minutes or some other time), the data presentedin the snapshot of metric data column 330D may be updated.

The purchase and configure column 330E provides UI elements that allowthe customer to select a metric for purchase and configuration. In thecurrent example, the price of the metric is also displayed. As discussedabove, the customer may purchase an available metrics by selecting auser interface element.

FIG. 3C is a screen diagram showing an illustrative GUI 335 thatdisplays metric data for selected metrics, in accordance with aspectsdisclosed herein. The GUI 335 may be generated by the metrics manager124, shown in FIG. 1, and presented on a computing device, such as thecomputing device 130 by an application, such as a Web browser. In thecurrent example, the GUI 335 shows a commands metric for the “databaseexpress” software product 152 within element 336 and a CPU metrics for avirtual machine within element 338.

The GUI 335 might display a variety of different information relating tothe selected metrics. In the current example, for the database expresssoftware product 152, the GUI 335 shows metrics data that is obtainedfrom a current execution of the database express software product andthe virtual machine associated with the customer. For instance, themetric data for the metric may be the last one minute, two minutes, orfive minutes of data for an execution within the service providernetwork 120 that is associated with the customer. In this way, thecustomer may see example metric data for a metric that might be selectedusing data obtained from an execution that the customer configured.Stated another way, the metrics data displayed in the GUI 335 may bedata associated with the customer, and not some “example” data that isassociated with another customer.

As illustrated, the element 336 shows a graph 342A that shows the numberof times selected commands have been issued within a specified time(e.g., the last five minutes). In the current example, the customer hasselected to view the number of times the “commit” command has beenissued and the number of times the “insert” command has been issued inthe last five minutes.

The element 338 shows a graph 342B that shows the CPU use for a selectedvirtual machine within a specified time (e.g., the last five minutes).In the current example, the customer has selected to view the system useof the CPU during the last five minutes.

Also illustrated in the GUI 335 are alarm user interface (“UI”) elements340A-340J that may be utilized by the customer to set one or morealarms. For example, a customer might select UI element 340A toconfigure an alarm that is triggered when a specified number of commitcommand occur within the execution of the database express softwareproduct. Generally, the thresholds that are utilized by the metricmanager 124 to determine whether an alarm is to trigger may be based onuser specified settings. In some examples, default values may be set foralarms. For instance, an alarm for memory usage might be set to 90%,such that when the use of memory exceeds 90% the associated alarm istriggered.

FIG. 3D is a screen diagram showing an illustrative GUI 345 thatdisplays purchased metrics along with a snapshot of collected metricdata. The GUI 345 may be generated by the metrics manager 124, shown inFIG. 1, and presented on a computing device, such as the computingdevice 130 by an application, such as a Web browser.

As illustrated, the GUI 345 includes rows corresponding to differentmetrics purchased by the customer. In the current example, the GUI 345includes a row for the commands metric and a row for the handler metricassociated with the “Database Express” software product 152, and a diskuse metric row and a memory use row associated with one or more othersoftware products.

In the current example, the GUI 345 shows a metrics name column 330F, asnapshot of metric data column 330G, a more detail column 330H, acurrent bill column 330I, and an alarm column 330J. More or less datamay be shown. Generally, the metrics column 330F provides the name for apurchased metric. The snapshot of metric data column 330D provides asnapshot of metric data collected from resources 130 executing on behalfof the customer. The more detail column 330H provides UI elements thatwhen selected provide more detailed metric data 126 for the selectedmetric. For example, the customer might select the more detail UIelement for the commands metric to obtain detailed metrics data 126 foreach of the different commands associated with the “Database Express”software product 152.

The current bill column 330I provides the current amount of a bill for ametric. In this way, the customer may see how much the metric is costingon an ongoing basis. The alarm column 330J may provide a set alarm UIelement for metrics in which an alarm may be configured without userinteraction. For example, some metrics may have default alarm thresholdsthat are applicable across a wide variety of applications. In otherexamples, a set alarm UI element may be displayed for each of thepurchased metrics.

FIGS. 4 and 5 are flow diagrams showing routines that illustrate aspectsof selecting and configuring metrics to monitor. It should beappreciated that the logical operations described herein with respect toFIGS. 4 and 5, and the other FIGS., may be implemented (1) as a sequenceof computer implemented acts or program modules running on a computingsystem and/or (2) as interconnected machine logic circuits or circuitmodules within the computing system.

The implementation of the various components described herein is amatter of choice dependent on the performance and other requirements ofthe computing system. Accordingly, the logical operations describedherein are referred to variously as operations, structural devices,acts, or modules. These operations, structural devices, acts, andmodules may be implemented in software, in firmware, in special purposedigital logic and any combination thereof. It should also be appreciatedthat more or fewer operations may be performed than shown in the FIGS.and described herein. These operations may also be performed inparallel, or in a different order than those described herein.

FIG. 4 is a flow diagram showing a routine 400 illustrating aspects of amechanism disclosed herein for selecting and configuring metrics tomonitor within a service provider network. The routine 400 may begin atoperation 402, where an infrastructure specified by the customer isanalyzed to determine the computing resources utilized. As discussedabove, the infrastructure defines the computing resources utilizedwithin the service provider network. In some configurations, theinfrastructure is dynamically analyzed as the computing resources areexecuting within the service provider network. For example, the metricsmanager 124 in the monitoring service 166 may examine the currentlyrunning processes that are associated with the defined infrastructure bythe customer. The examination may include an analysis of the contents ofmemory of one or more computing devices, querying an operating system torequest active processes, and the like. In other configurations,configuration data associated with the infrastructure is analyzed todetermine the computing resources associated with the infrastructure.For example, the metrics manager 124 may determine the defined resourcesthat are contained within the configuration data for a specifiedinfrastructure.

At operation 404, the metrics associated with the computing resourcesare identified. As discussed above, the metrics that are associated withthe computing resources may be determined using best practice dataand/or other data that indicates what metrics may be measured. In someconfigurations, metrics such as defined by the plugins available for thesystems statistics collection daemon “Collectd”. In Collectd there arecurrently over 90 plugins that support different software products andthe monitoring of many different types of metrics. Each of these pluginsmay specify the metrics that are monitored by the plugin. In yet otherconfigurations, the best practices 128 data may be examined to identifymetrics to monitor. For example, the best practices data 182 may beexamined to determine what metrics are most often (or recommended) tomonitor for a particular resource.

At 406, the metrics to provide to the customer are selected. Asdiscussed above, the metrics that are provided to the customer as theavailable metrics 188 for selection might be all or a part of themetrics that are associated with the computing resources utilized withinthe infrastructure. The metrics to provide to the customer may selectedbe selected by the metrics manager 124 using different mechanisms. Forexample, the available metrics 188 provided to the customer might bebased on commonly used metrics, recommended metrics, and the like. Forexample, the metrics manager 124 may access the best practice data 182to determine the recommended metrics by a software provider, a reviewingservice, the service provider network 120, or some other user familiarwith the operation of the computing resource.

As also discussed above, the metrics that are provided may be selectedby the metrics manager 124 using customer usage data. For example,metrics that are commonly selected and utilized by other customerswithin the service provider network 120 may be identified by the metricsmanager 124. For example, the metrics manager 124 may identify othercustomers within the service provider network 120 that utilize all or aportion of the computing resources 130 that the customer utilizes. Themetrics manager 124 may then identify what metrics the identifiedcustomers are utilizing. The metrics used by other customers may bestored by the metrics manager in the best practices data 182.

According to some configurations, the customer data used by the metricsmanager 124 may be based on customers that have a similar profile to thecustomer. For example, the metrics manager 124 may identify othercustomers that are in the same type of business (e.g., banking,software-as-a-service, or the like) and determine the metrics that arecommonly selected by the identified customers. In some configurations,the metrics manager 124 may select a top number of metrics (e.g., top10, 20, 50, or the like) from the best practices data 182. In otherexamples, the metrics manager 124 may select all, or some other portion,of the metrics identified by the best practices data 182.

At 408, the metrics are provided to the customer. As discussed above, agraphical user interface, such as the graphical user interface displayedin FIG. 3A or 3B might be used to display the available metricsdetermined by the metrics manager 124. In other examples, the availablemetrics may be provided using different mechanisms. For example, theavailable metrics may be delivered in a message, stored in a document,delivered in a report, and the like. In some examples, the availablemetrics might be updated in response to different events. For example,the available metrics might be updated periodically, in response tofurther use or configuration of the infrastructure, or the like.

At 410, one or more metrics are selected for monitoring. As discussedabove, a customer may use the GUI 300 or the GUI 325 to select one ormore of the metrics to monitor. In some examples, the customer mayselect a checkbox, or provide some other indication, to select a metricfor monitoring. In other examples, the customer might use a voiceinterface, or some other interface, to choose the selected metrics 190.

At 412, the selected metrics are configured for monitoring within theservice provider network 120. As discussed above, the metrics manager124 may modify a configuration file, or some other setting, to indicateto begin monitoring of one or more of the selected metric. For example,the metrics manager 124 may change a configuration file associated witha collection daemon. In some examples, after making the change to theconfiguration file, one or more collectors 135 may be instructed to loada plugin (or activate some software) to begin monitoring of the selectedcomponent within one or more execution environments.

At 414, the metrics data for the selected metrics are collected. Asdiscussed above, one or more collectors 135, the monitoring service 166,or some other computing device may collect the metrics data 126. In someexamples, the frequency of the collection may be configured by thecustomer (e.g., every 1 minute, 2 minutes, 10 minutes, whenever a valuechanges, and the like).

At 416, the collected metrics data 126 associated with the metrics maybe provided by the monitoring service 166, the monitoring manager 124,or some other computing device, to the customer, or some otherauthorized user. As discussed above, a graphical user interface might beused to display the metric data. In other examples, the metric data maybe provided using different mechanisms. For example, the metric data maybe delivered in a message, stored in a document, delivered in a report,and the like.

FIG. 5 is a flow diagram showing a routine 500 illustrating aspects of amechanism disclosed herein for providing example metric data for metricsand purchasing metrics. The routine 500 may begin at operation 502,where a selection of a metric is received. As discussed above, the usermight select a metric using a GUI, such as the GUI 300 illustrated inFIG. 3A. The selection might be an indication to receive moreinformation about the metric and/or a selection to purchase the metric.

At 504, a determination is made as to whether more detail is requestedregarding the selected metric. As discussed above, the more detail mightinclude displaying a description of the metric and exemplary data forthe metric. When more detail is not requested, the routine 500 moves to510. When more detail is requested, the routine 500 moves to 506.

At 506, metric data for the selected metric is obtained. As discussedabove, the metric data that is obtained for providing more detail for aselected metric is obtained from computing resources configured andoperating under the control of the customer requesting more detail. Insome examples, the metric manager 124 accesses the previous five minutes(or some other amount of data) from the infrastructure associated withthe customer that is operating within the service provider network 120.

At 508, the metric data for the selected metric is displayed. In someconfigurations, the metrics data is displayed within a user interfaceelement, such as user interface elements illustrated in FIGS. 3B and 3C.As discussed above, the metric data may provide the customer a glimpseinto how the selected metric may be of use to the customer.

At 510, a determination is made as to whether to purchase the metric.For example, the customer may select a “purchase” UI element. When thecustomer does not desire to purchase the metric, the routine 500 movesto an end operation and may return to processing other actions. When thecustomer does desire to purchase the metric, the routine 500 moves to512.

At 512, data identifying the selected metric is added, or otherwiseassociated, with an account of the customer. In this way, the customermay be charged for receiving the metric data for the selected metric.

At 514, the selected metric is configured and added to a user interfaceassociated with the customer after being purchased. As discussed above,in response to receiving an indication to purchase a metric, the metricsmanager 124 may configure the metric and provide access to the collectedmetrics data 126 within a graphical user interface such as the GUI 345illustrated in FIG. 3D.

FIG. 6 and the following description are intended to provide a brief,general description of a suitable computing environment in which theexamples described herein may be implemented. In particular, FIG. 6 is asystem and network diagram that shows an illustrative operatingenvironment that includes a service provider network 120. As discussedabove, the service provider network 120 can provide virtual machineinstances (or other execution environments such as containers) andcomputing resources on a permanent or an as-needed basis.

The computing resources provided by the service provider network 120 mayinclude various types of resources, such as data processing resources,data storage resources, networking resources, data communicationresources and the like. Each type of computing resource may begeneral-purpose or may be available in a number of specificconfigurations. For example, and as will be described in greater detailbelow, data processing resources may be available as virtual machineinstances in a number of different configurations. The virtual machineinstances may be configured to execute applications, including Webservers, application servers, media servers, database servers and othertypes of applications. Data storage resources may include file storagedevices, block storage devices and the like. Each type or configurationof a virtual machine instance of a computing resource may be availablein different sizes, such as large resources, consisting of manyprocessors, large amounts of memory, and/or large storage capacity, andsmall resources consisting of fewer processors, smaller amounts ofmemory and/or smaller storage capacity.

The computing resources provided by the service provider network 120 areenabled in one implementation by one or more data centers 604A-604N(which may be referred to herein singularly as “a data center 604” orcollectively as “the data centers 604”). The data centers 604 arefacilities utilized to house and operate computer systems and associatedcomponents. The data centers 604 typically include redundant and backuppower, communications, cooling and security systems. The data centers604 might also be located in geographically disparate locations. Oneillustrative configuration for a data center 604 that implements some orall of the concepts and technologies disclosed herein for selecting andconfiguring metrics for monitoring in the service provider network 120will be described below with regard to FIG. 7.

The users and customers of the service provider network 120 may accessthe computing resources provided by the data centers 604 over a suitabledata communications network, such as a Wide Area Network (“WAN”), asillustrated by network 630. Although a WAN might be used, it should beappreciated that a local-area network (“LAN”), the Internet, or anyother networking topology known in the art that connects the datacenters 604 to the customer computing devices 140, the software providercomputing devices 150 may be utilized. It should also be appreciatedthat combinations of such networks might also be utilized.

FIG. 7 is a computing system diagram that illustrates one configurationfor a data center 604 that implements aspects of a service providernetwork 120, including some or all of the concepts and technologiesdisclosed herein for determining metrics available for monitoring andconfiguring the metrics for monitoring. The example data center 604shown in FIG. 7 includes several server computers 702A-702F (which maybe referred to herein singularly as “a server computer 702” or in theplural as “the server computers 702”) for providing computing resources.The server computers 702 may be standard tower or rack-mount servercomputers configured appropriately for providing the computing resourcesdescribed herein. According to an example, the server computers 702 areconfigured to execute the software products as described above.

In one example, some of the computing resources 704 are virtual machineinstances. As known in the art, a virtual machine instance is aninstance of a software implementation of a machine (i.e. a computer)that executes programs like a physical machine. Each of the servercomputers 702 may be configured to execute an instance manager (notshown) capable of instantiating and managing computing resources andinstances of computing resources. In the case of virtual machineinstances, for example, the instance manager might be a hypervisor oranother type of program configured to enable the execution of multiplevirtual machine instances on a single server computer 702, for example.

It should be appreciated that although the examples disclosed herein aredescribed primarily in the context of virtual machine instances, othertypes of computing resources can be utilized with the concepts andtechnologies disclosed herein. For instance, the technologies disclosedherein might be utilized with hardware resources, data storageresources, data communications resources, networking resources, databaseresources and with other types of computing resources.

The data center 604 shown in FIG. 7 also includes a server computer 702Freserved for executing software components for managing the operation ofthe data center 604, the server computers 702, virtual machineinstances, and other resources within the service provider network 120.The server computer 702F might also execute the metrics manager 124 andother components described above. Details regarding the operation ofeach of these components has been provided above. In this regard, itshould be appreciated that while these components are illustrated asexecuting within the service provider network 120, computing systemsthat are external to the service provider network 120 might also beutilized to execute some or all of these components. Otherconfigurations might also be utilized.

In the example data center 604 shown in FIG. 7, an appropriate localarea network (“LAN”) 705 is utilized to interconnect the servercomputers 702A-702E and the server computer 702F. The LAN 705 is alsoconnected to the network 630 illustrated in FIG. 6. It should beappreciated that the configuration and network topology illustrated inFIGS. 6 and 7 has been greatly simplified and that many more computingsystems, networks and networking devices may be utilized to interconnectthe various computing systems disclosed herein. Appropriate loadbalancing devices or software modules might also be utilized forbalancing a load between each of the data centers 604A-604N, betweeneach of the server computers 702A-702F in each data center 604 andbetween virtual machine instances and other types of computing resourcesprovided by the service provider network 120.

It should be appreciated that the data center 604 described in FIG. 7 ismerely illustrative and that other implementations might also beutilized. Additionally, it should be appreciated that the functionalityprovided by these components might be implemented in software, hardware,or a combination of software and hardware. Other implementations shouldbe apparent to those skilled in the art.

FIG. 8 shows an example computer architecture for a computer 800 capableof executing program components for selecting and configuring metrics inthe manner described above. The computer architecture shown in FIG. 8illustrates a conventional server computer, workstation, desktopcomputer, laptop, tablet, network appliance, personal digital assistant(“PDA”), e-reader, digital cellular phone, or other computing device,and may be utilized to execute any of the software components presentedherein. For example, the computer architecture shown in FIG. 8 may beutilized to execute software components for performing operations asdescribed above. The computer architecture shown in FIG. 8 might also beutilized to implement a customer computing device 140, a softwareprovider computing device 150 or any other of the computing systemsdescribed herein.

The computer 800 includes a baseboard 802, or “motherboard,” which is aprinted circuit board to which a multitude of components or devices maybe connected by way of a system bus or other electrical communicationpaths. In one illustrative example, one or more central processing units(“CPUs”) 804 operate in conjunction with a chipset 806. The CPUs 804 maybe standard programmable processors that perform arithmetic and logicaloperations necessary for the operation of the computer 800.

The CPUs 804 perform operations by transitioning from one discrete,physical state to the next through the manipulation of switchingelements that differentiate between and change these states. Switchingelements may generally include electronic circuits that maintain one oftwo binary states, such as flip-flops and electronic circuits thatprovide an output state based on the logical combination of the statesof one or more other switching elements, such as logic gates. Thesebasic switching elements may be combined to create more complex logiccircuits, including registers, adders-subtractors, arithmetic logicunits, floating-point units and the like.

The chipset 806 provides an interface between the CPUs 804 and theremainder of the components and devices on the baseboard 802. Thechipset 806 may provide an interface to a RAM 808, used as the mainmemory in the computer 800. The chipset 806 may further provide aninterface to a computer-readable storage medium such as a read-onlymemory (“ROM”) 810 or non-volatile RAM (“NVRAM”) for storing basicroutines that help to startup the computer 800 and to transferinformation between the various components and devices. The ROM 810 orNVRAM may also store other software components necessary for theoperation of the computer 800 in accordance with the examples describedherein.

The computer 800 may operate in a networked environment using logicalconnections to remote computing devices and computer systems through anetwork, such as the local area network 820. The chipset 806 may includefunctionality for providing network connectivity through a networkinterface controller (“NIC”) 812, such as a gigabit Ethernet adapter.The NIC 812 is capable of connecting the computer 800 to other computingdevices over the local area network 820. It should be appreciated thatmultiple NICs 812 may be present in the computer 800, connecting thecomputer to other types of networks and remote computer systems.

The computer 800 may be connected to a mass storage device 818 thatprovides non-volatile storage for the computer. The mass storage device818 may store system programs, application programs, other programmodules and data, which have been described in greater detail herein.The mass storage device 818 may be connected to the computer 800 througha storage controller 814 connected to the chipset 806. The mass storagedevice 818 may consist of one or more physical storage units. Thestorage controller 814 may interface with the physical storage unitsthrough a serial attached SCSI (“SAS”) interface, a serial advancedtechnology attachment (“SATA”) interface, a fiber channel (“FC”)interface, or other type of interface for physically connecting andtransferring data between computers and physical storage units.

The computer 800 may store data on the mass storage device 818 bytransforming the physical state of the physical storage units to reflectthe information being stored. The specific transformation of physicalstate may depend on various factors, in different implementations ofthis description. Examples of such factors may include, but are notlimited to, the technology used to implement the physical storage units,whether the mass storage device 818 is characterized as primary orsecondary storage and the like.

For example, the computer 800 may store information to the mass storagedevice 818 by issuing instructions through the storage controller 814 toalter the magnetic characteristics of a particular location within amagnetic disk drive unit, the reflective or refractive characteristicsof a particular location in an optical storage unit, or the electricalcharacteristics of a particular capacitor, transistor, or other discretecomponent in a solid-state storage unit. Other transformations ofphysical media are possible without departing from the scope and spiritof the present description, with the foregoing examples provided only tofacilitate this description. The computer 800 may further readinformation from the mass storage device 818 by detecting the physicalstates or characteristics of one or more particular locations within thephysical storage units.

In addition to the mass storage device 818 described above, the computer800 may have access to other computer-readable storage media to storeand retrieve information, such as program modules, data structures, orother data. It should be appreciated by those skilled in the art thatcomputer-readable storage media is any available media that provides forthe non-transitory storage of data and that may be accessed by thecomputer 800.

By way of example, and not limitation, computer-readable storage mediamay include volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology. Computer-readable storage mediaincludes, but is not limited to, RAM, ROM, erasable programmable ROM(“EPROM”), electrically-erasable programmable ROM (“EEPROM”), flashmemory or other solid-state memory technology, compact disc ROM(“CD-ROM”), digital versatile disk (“DVD”), high definition DVD(“HD-DVD”), BLU-RAY, or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium that can be used to store the desired information ina non-transitory fashion.

The mass storage device 818 may store an operating system 830 utilizedto control the operation of the computer 800. According to one example,the operating system comprises the LINUX operating system. According toanother example, the operating system comprises the WINDOWS® SERVERoperating system from MICROSOFT Corporation. According to furtherexamples, the operating system may comprise the UNIX operating system.It should be appreciated that other operating systems may also beutilized. The mass storage device 818 may store other system orapplication programs and data utilized by the computer 800, such ascomponents that include the metrics manager 124, the reporting component126, software product 152 and/or any of the other software componentsand data described above. The mass storage device 818 might also storeother programs and data not specifically identified herein.

In one example, the mass storage device 818 or other computer-readablestorage media is encoded with computer-executable instructions that,when loaded into the computer 800, transform the computer from ageneral-purpose computing system into a special-purpose computer capableof implementing the examples described herein. These computer-executableinstructions transform the computer 800 by specifying how the CPUs 804transition between states, as described above. According to one example,the computer 800 has access to computer-readable storage media storingcomputer-executable instructions which, when executed by the computer800, perform the various routines described above with regard to FIGS.4-5. The computer 800 might also include computer-readable storage mediafor performing any of the other computer-implemented operationsdescribed herein.

The computer 800 may also include one or more input/output controllers816 for receiving and processing input from a number of input devices,such as a keyboard, a mouse, a touchpad, a touch screen, an electronicstylus, or other type of input device. Similarly, the input/outputcontroller 816 may provide output to a display, such as a computermonitor, a flat-panel display, a digital projector, a printer, aplotter, or other type of output device. It will be appreciated that thecomputer 800 may not include all of the components shown in FIG. 8, mayinclude other components that are not explicitly shown in FIG. 8, or mayutilize an architecture completely different than that shown in FIG. 8.

Based on the foregoing, it should be appreciated that technologies forselecting and configuring metrics have been presented herein. Moreover,although the subject matter presented herein has been described inlanguage specific to computer structural features, methodological actsand computer readable media, it is to be understood that the inventiondefined in the appended claims is not necessarily limited to thespecific features, acts, or media described herein. Rather, the specificfeatures, acts and media are disclosed as example forms of implementingthe claims.

The subject matter described above is provided by way of illustrationonly and should not be construed as limiting. Furthermore, the claimedsubject matter is not limited to implementations that solve any or alldisadvantages noted in any part of this disclosure. Variousmodifications and changes may be made to the subject matter describedherein without following the example examples and applicationsillustrated and described, and without departing from the true spiritand scope of the present invention, which is set forth in the followingclaims.

What is claimed is:
 1. A computer-implemented method, comprising:analyzing data, defining an infrastructure, to determine computingresources utilized within a service provider network by a customer ofthe service provider network, wherein the infrastructure is specified atleast in part by the customer; identifying, based at least in part onthe data, metrics available to monitor that are associated with one ormore of the computing resources utilized within the service providernetwork by the customer; identifying one or more different customers ofthe service provider network based, at least in part, on one or more ofa type of business of the one or more different customers, a number ofemployees of the one or more different customers, or a utilization of atleast a portion of the computing resources within the service providernetwork by the one or more different customers; identifying secondmetrics that are utilized by the one or more different customers;selecting a subset of the metrics available to monitor based, at leastin part, on the second metrics that are utilized by the one or moredifferent customers of the service provider network; generating metricUI elements for individual ones of the subset of metrics; causing adisplay of the metric UI elements within a graphical user interface(GUI) on a first computing device associated with the customer of theservice provider network, the user interface elements associated withthe metrics available to monitor; receiving, from the first computingdevice associated with the customer, a selection to purchase a metric tomonitor, the purchase including an associated usage fee based, at leastin part, on a condition of use of the metric; configuring, on behalf ofthe customer, the metric to monitor within the service provider network,wherein the configuring includes: identifying a second computing devicewithin the service provider network associated with the execution of theone or more computing resources related to the user interface elementsand the metric, modifying software on the second computing device tocollect metric data for the one or more of the computer resourcesassociated with the metric, and causing the second computing device tocollect the metric data for the one or more of the computer resourcesassociated with the metric.
 2. The computer-implemented method of claim1, further comprising: generating first user interface elementsrepresenting virtual machine instances executing in the service providernetwork on behalf of the customer; generating second user interfaceelements representing software products executing in one or more of thevirtual machine instances on behalf of the customer; and displaying atleast a portion of one or more of the first user interface elements orthe second user interface elements within the GUI.
 3. Thecomputer-implemented method of claim 1, wherein the configuring thepurchased metric for monitoring further comprises updating aconfiguration file associated with a collection daemon executing withinthe service provider network, the collection daemon monitoring othercomputing resources within the service provider network.
 4. Thecomputer-implemented method of claim 2, further comprising: displaying aselectable user interface element within the GUI, the selectable userinterface element associated with one or more of the first userinterface elements or the second user interface elements; receiving aselection of the selectable user interface element; in response toreceiving the selection, obtaining the metric data from one or more ofthe computing resources executing within the service provider network onbehalf of the customer; and providing the metric data for display on thefirst computing device.
 5. The computer-implemented method of claim 1,further comprising updating, before the configuring the purchasedmetric, causing a display of at least a portion of the metric datacollected from the one or more of the computing resources.
 6. Thecomputer-implemented method of claim 1, further comprising: providing analarm as the condition of use of the metric; displaying an alarm userinterface element within the GUI; receiving alarm configuration data viathe alarm user interface element; and configuring an alarm for one ormore of the metrics based, at least in part, on the alarm configurationdata.
 7. A non-transitory computer-readable storage medium havingcomputer-executable instructions stored thereupon which, when executedby a computer, cause the computer to: identify metrics available tomonitor that are associated with one or more computing resourcesutilized within a service provider network by a customer of the serviceprovider network; identify second metrics that are utilized by one ormore different customers of the service provider network; select asubset of the metrics available to monitor based, at least in part, onthe second metrics utilized by the one or more different customers ofthe service provider network; cause a display of a user interface on acomputing device associated with the customer, wherein the userinterface presents at least a portion of the subset of the metricsavailable to monitor; receive, from the computing device associated withthe customer, a selection to purchase a metric to monitor, the purchaseincluding an associated usage fee based, at least in part, on acondition of use of the metric; configure, within the service providernetwork, the purchased metric for monitoring, wherein the configuringincludes modifying one or more of a configuration file associated with acollection of metric data for the purchased metric or software executingon one or more computing devices within the service provider networkthat is operative to collect the metric data for the purchased metric;and cause at least one of the one or more computing devices within theservice provider network to collect the metric data for the purchasedmetric.
 8. The non-transitory computer-readable storage medium of claim7, wherein causing the display of the user interface on the computingdevice, comprises: providing first user interface elements for executionenvironments specified by an infrastructure specified by the customer;and providing second user interface elements for software productsspecified by the infrastructure.
 9. The non-transitory computer-readablestorage medium of claim 7, wherein the configuring the purchased metricfor monitoring comprises instructing, on behalf of the customer, acollection agent operative to execute within the service providernetwork to collect the metric data for the purchased metric.
 10. Thenon-transitory computer-readable storage medium of claim 7, wherein theconfiguring the purchased metric for monitoring, comprises updating, onbehalf of the customer, settings associated with the monitoring of thepurchased metric, the settings maintained by the service providernetwork.
 11. The non-transitory computer-readable storage medium ofclaim 7, wherein select the subset of the metrics available to monitorcomprises ranking the metrics within the user interface, based, at leastin part, on a popularity of individual ones of the metrics.
 12. Thenon-transitory computer-readable storage medium of claim 7, wherein thecomputer-executable instructions further cause the computer to providefor presentation within the user interface a selectable user interfaceelement that when selected causes metric data associated with at leastone of the metrics to be presented.
 13. The non-transitorycomputer-readable storage medium of claim 7, wherein causing the displayof the user interface on the computing device comprises providing fordisplay metric data associated with the metric UI elements presentedwithin the user interface.
 14. The non-transitory computer-readablestorage medium of claim 7, wherein the computer-executable instructionsfurther cause the computer to provide for presentation an alarm userinterface element associated with at least with one or more of themetrics.
 15. The non-transitory computer-readable storage medium ofclaim 7, wherein the computer-executable instructions further cause thecomputer to provide for presentation a snapshot of a specified period oftime of metric data.
 16. A system, comprising: an electronic memorydevice; and one or more computing devices configured to operate in aservice provider network, at least one of the one or more computingdevices configured to access the electronic memory device, the one ormore computing devices further configured to: identify metrics availableto monitor that are associated with one or more computing resourcesutilized within a service provider network by a customer of the serviceprovider network; identify second metrics that are utilized by one ormore different customers of the service provider network; select asubset of the metrics available to monitor based, at least in part, onthe second metrics utilized by the one or more different customers ofthe service provider network; provide, within a user interfaceassociated with the customer of the service provider network, at least aportion of the subset of the metrics; receive, from a computing deviceassociated with the customer, a selection to purchase a metric tomonitor, the purchase including an associated usage fee based, at leastin part, on a condition of use of the metric; configure, on behalf ofthe customer, the purchased metric for monitoring within the serviceprovider network, wherein the configuring includes the one or morecomputing devices modifying a configuration file associated withsoftware or hardware executing within the service provider network thatis operative to collect metric data for the purchased metric ormodifying at least a portion of the software or the hardware that isoperative to collect metric data for the purchased metric; and cause atleast one or more computing devices within the service provider networkto collect the metric data for the purchased metric.
 17. The system ofclaim 16, wherein the providing the metrics available to monitorcomprises providing for display user interface elements based, at leastin part, on an infrastructure specified by the customer.
 18. The systemof claim 16, wherein the configuring the purchased metric for monitoringcomprises instructing a collection agent, on behalf of the customer, tocollect the metric data for the purchased metric.
 19. The system ofclaim 16, wherein the one or more computing devices are furtherconfigured to provide for presentation a selectable user interfaceelement, and upon selection, provide for display, metric data obtainedfrom one or more of the computing resources executing on behalf of thecustomer.
 20. The system of claim 16, wherein the one or more computingdevices are further configured to provide for presentation an alarm userinterface element associated with at least with one or more of themetrics.